package com.xx.library.mapper;

import com.xx.library.entity.Book;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;

//将接口标记为 MyBatis 的映射器接口
//@Param 注解用于指定 SQL 语句中对应的参数名称
@Mapper
public interface BookMapper {
    // 根据ID查询书籍
    Book selectById(@Param("id") Long id);
    
    // 根据ISBN查询书籍
    Book selectByIsbn(@Param("isbn") String isbn);
    
    // 查询所有书籍
    List<Book> selectAll();
    
    // 插入书籍
    int insert(Book book);
    
    // 更新书籍
    int update(Book book);
    
    // 删除书籍
    int deleteById(@Param("id") Long id);
    
    // 根据条件查询书籍
    List<Book> selectByCondition(Book book);
    
    // 更新书籍可借数量
    int updateAvailableCopies(@Param("id") Long id, @Param("availableCopies") Integer availableCopies);
    
    List<Book> searchByTitle(@Param("title") String title);

} 